package com.binest.myCollection.service.impl;

import java.util.List;

import com.binest.common.core.domain.entity.SysUser;
import com.binest.common.core.domain.model.LoginUser;
import com.binest.common.utils.DateUtils;
import com.binest.common.utils.uuid.IdUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.binest.myCollection.mapper.MyCollectionMapper;
import com.binest.myCollection.domain.MyCollection;
import com.binest.myCollection.service.IMyCollectionService;

import static com.binest.common.utils.SecurityUtils.getLoginUser;

/**
 * 我的收藏Service业务层处理
 * 
 * @author wwd
 * @date 2024-01-31
 */
@Service
public class MyCollectionServiceImpl implements IMyCollectionService 
{
    @Autowired
    private MyCollectionMapper myCollectionMapper;


    /**
     * 查询我的收藏
     * 
     * @param id 我的收藏主键
     * @return 我的收藏
     */
    @Override
    public MyCollection selectMyCollectionById(String id)
    {
        return myCollectionMapper.selectMyCollectionById(id);
    }

    /**
     * 查询我的收藏列表
     * 
     * @param myCollection 我的收藏
     * @return 我的收藏
     */
    @Override
    public List<MyCollection> selectMyCollectionList(MyCollection myCollection)
    {
        return myCollectionMapper.selectMyCollectionList(myCollection);
    }

    /**
     * 新增我的收藏
     * 
     * @param myCollection 我的收藏
     * @return 结果
     */
    @Override
    public int insertMyCollection(MyCollection myCollection)
    {
        //获取当前登录用户
        LoginUser loginUser = getLoginUser();
        SysUser currentUser = loginUser.getUser();
        myCollection.setCreateTime(DateUtils.getNowDate());
        myCollection.setId(IdUtils.simpleUUID());
        myCollection.setCreateBy(currentUser.getUserId().toString());
        return myCollectionMapper.insertMyCollection(myCollection);
    }

    /**
     * 修改我的收藏
     * 
     * @param myCollection 我的收藏
     * @return 结果
     */
    @Override
    public int updateMyCollection(MyCollection myCollection)
    {
        myCollection.setUpdateTime(DateUtils.getNowDate());
        return myCollectionMapper.updateMyCollection(myCollection);
    }

    /**
     * 批量删除我的收藏
     * 
     * @param ids 需要删除的我的收藏主键
     * @return 结果
     */
    @Override
    public int deleteMyCollectionByIds(String[] ids)
    {
        return myCollectionMapper.deleteMyCollectionByIds(ids);
    }

    /**
     * 删除我的收藏信息
     * 
     * @param id 我的收藏主键
     * @return 结果
     */
    @Override
    public int deleteMyCollectionById(String id)
    {
        return myCollectionMapper.deleteMyCollectionById(id);
    }
}
